package com.zyn.java8.feature;

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;

/**
 * 运行时获取方法的参数名称。
 * 在Java 8中这个特性是默认关闭的，因此如果不带-parameters参数编译上述代码并运行，则会输出如下结果：Parameter: arg0<br>
 * 如果带-parameters参数，则会输出如下结果（正确的结果）：Parameter: args<br>
 * 如果你使用Maven进行项目管理，则可以在maven-compiler-plugin编译器的配置项中配置-parameters参数：
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <compilerArgument>-parameters</compilerArgument>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>
 * 
 * @author tongyufu
 *
 */
public class ParameterNames {

    public static void main(String[] args) throws NoSuchMethodException, SecurityException {
        Method method = ParameterNames.class.getMethod("main", String[].class);
        for (Parameter param : method.getParameters()) {
            System.out.println("Parameter：" + param.getName());
        }
    }

}
